Вход

Просмотр полной версии : Подключение script один раз


Mateus
08.10.2013, 10:42
Доброго времени суток.
Проблема в том, что нужно реализовать на динамической страничке подключение скрипта только один раз. Т.е. я все время делаю

include 'file.php';
echo '<script type="text/javascript" src="script.js"></script>';

Какую можно поставить проверку, что бы подключать скрипт только один раз?
И как можно установить кэширование/gzip скриптов. Заранее благодарен.

ksa
08.10.2013, 10:46
Какую можно поставить проверку, что бы подключать скрипт только один раз?
1. Фиксируй где-то на сервере, что скрипт уже подключался.
2. Меняй в корне алгоритм формирования страницы

Mateus
08.10.2013, 10:54
У меня к примеру сейчас стоит проверка через сессию, т.е.
if ($_SESSION['script']!=1){
// Добавляю скрипт
$_SESSION['script']=1;}

Как можно на сервере зафиксировать передачу скрипта?


п.с. Может быть добавить проверку в самом javascript? Т.е.

if (abcd!=1){
// добавляем весь код
abcd=1;
}
Ваше мнение?

ksa
08.10.2013, 10:58
У меня к примеру сейчас стоит проверка через сессию, т.е.
if ($_SESSION['script']!=1){
// Добавляю скрипт
$_SESSION['script']=1;}
Тогда не понятно почему он у тебя подключается более одного раза... :blink:

Mateus
08.10.2013, 11:05
Не подгружается в случае, если пользователь ходит по одному модулю, т.е. site.com/page/1
site.com/page/2 и т.д.

Но в случае если переходит к другому модулю, то if вообще игнорируется, хотя значение в сессии по прежнему 1. Я попробовал добавить проверку в сам javascript и вроде работает. Буду тестировать, спасибо за помощь.

danik.js
08.10.2013, 11:14
И как можно установить кэширование/gzip скриптов. Заранее благодарен.

Если сервак - apache, то можно прописать соотвествующие правила в .htaccess
Можно добавить в проект минимизатор скриптов/стилей. Он сам гзипует, выставляет заголовки, объединяет, режет и прочее.

ksa
08.10.2013, 11:18
если переходит к другому модулю
Х/з, что в ПХП значит "модуль"... Но суть сессии - хранить данные сеанса пока он не завершен или не истек ее таймаут...

Mateus
08.10.2013, 11:25
Всё работает правильно и сессия не работа из-за того, что подгружаемые ajaxom файл был с ошибкой. В пхп ничего модулем наверное не называется, не силен в дефинициях. В моём случае модулем назвал template.